package panda.client.engine;

import java.io.Serializable;
import java.util.List;


/**
 * Stores serializable information about the client's model.
 * @author zane.tian@gmail.com
 */
public class ServerModel implements Serializable {
	private static final long serialVersionUID = 979056561562901248L;

	private int p1Life;
	private int p2Life;

	private List<MagicCard> p1lib;
	private List<MagicCard> p1gy;
	private List<MagicCard> p1hand;
	private List<MagicCard> p2lib;
	private List<MagicCard> p2gy;
	private List<MagicCard> p2hand;

	private List<MagicCardAndPos> inPlay;
	private List<CounterAndPos> counters;
	
	private String updateMsg;
	private long modelNum; /* ... number of times the model's changed */

	public ServerModel() {

	}

	public void setP1lib(List<MagicCard> p1lib) {
		this.p1lib = p1lib;
	}

	public List<MagicCard> getP1lib() {
		return p1lib;
	}

	public void setP1gy(List<MagicCard> p1gy) {
		this.p1gy = p1gy;
	}

	public List<MagicCard> getP1gy() {
		return p1gy;
	}

	public void setP1hand(List<MagicCard> p1hand) {
		this.p1hand = p1hand;
	}

	public List<MagicCard> getP1hand() {
		return p1hand;
	}

	public void setP2lib(List<MagicCard> p2lib) {
		this.p2lib = p2lib;
	}

	public List<MagicCard> getP2lib() {
		return p2lib;
	}

	public void setP2gy(List<MagicCard> p2gy) {
		this.p2gy = p2gy;
	}

	public List<MagicCard> getP2gy() {
		return p2gy;
	}

	public void setP2hand(List<MagicCard> p2hand) {
		this.p2hand = p2hand;
	}

	public List<MagicCard> getP2hand() {
		return p2hand;
	}

	public void setInPlay(List<MagicCardAndPos> inPlay) {
		this.inPlay = inPlay;
	}

	public List<MagicCardAndPos> getInPlay() {
		return inPlay;
	}

	public void setP1Life(int p1Life) {
		this.p1Life = p1Life;
	}

	public int getP1Life() {
		return p1Life;
	}

	public void setP2Life(int p2Life) {
		this.p2Life = p2Life;
	}

	public int getP2Life() {
		return p2Life;
	}

	public void setCounters(List<CounterAndPos> counters) {
		this.counters = counters;
	}

	public List<CounterAndPos> getCounters() {
		return counters;
	}

	public void setUpdateMsg(String updateMsg) {
		this.updateMsg = updateMsg;
	}

	public String getUpdateMsg() {
		return updateMsg;
	}
	
	public void setModelNum(long updatesSinceInitialization) {
		this.modelNum = updatesSinceInitialization;
	}

	public long getModelNum() {
		return modelNum;
	}

	public void incrementModelNum() {
		modelNum++;
	}
}